/* 用户上滑 滚动条触底 加载下页数据
    1 滚动条触底事件
    2 判断有无下一页数据
        2.1 获取总页数 total/pagesize
        2.2 获取当前页码 pagenum
        2.3 判断
    3 没有则弹出提示
    4 有则加载下一页数据且翻到下一页
    
    */

    /* 下拉刷新界面
    1 触发下拉刷新
    2 重置页码 重新请求数据 重新赋值 */

import {request} from "../../request/request.js"
Page({
    /**
     * 页面的初始数据
     */
    data: {
        tabs:[
            {
                id:0,
                value:"综合",
                isActive:true
            },
            {
                id:1,
                value:"销量",
                isActive:false
            },
            {
                id:2,
                value:"价格",
                isActive:false
            }
        ],
        goodsList:[],
        defaultImage:"https://pic2.zhimg.com/80/v2-0cc642bd1a977891d2c3407ff2f55619_720w.jpg"
        //接口要的参数
    },
    
    totalPage:1,
    QueryParams:{
        query:"",
        cid:"",
        pagenum:1,
        pagesize:10
    },


    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        this.QueryParams.cid = options.cid||"",
        this.QueryParams.query = options.query||""
        console.log(options.query);
        this.getGoodsList()
    },

    // 发送请求 获取商品列表数据
    async getGoodsList(){
        const res = await request({url:"/goods/search",data:this.QueryParams})
        let total = 20
        this.totalPage=Math.ceil(total/this.QueryParams.pagesize)
        console.log(this.totalPage);
        this.setData({
            goodsList:[...this.data.goodsList,...res.data.message.goods]
        })
        wx.stopPullDownRefresh()

    },

    tabsItemChange(e){
        const {index} = e.detail
        /* 修改原数组 */
        console.log(this);
        // 这里用到的是深拷贝 拷贝可枚举属性
        /*  如果源目标对象中某个属性值是对另一个对象的引用，
        那么这个属性的拷贝仍然是对引用的拷贝。
        */
        // let tabs = Object.assign({},this.data)
        // 或者this.tabs 都不行 说不是一个数组。。转换了也不行
        let {tabs} = this.data
        tabs.forEach((v,i)=>{
            i===index?v.isActive=true:v.isActive=false
        })
        this.setData({
            tabs
        })
    },

    // 滚动条触底事件
    onReachBottom(){
        // 判断还有没有下一页数据
        if(this.QueryParams.pagenum>=this.totalPage) {
            // 没有下一页
            wx.showToast({
                title: '已经到底啦',
                icon: 'error',
                duration: 1500,
                mask: false,
            });
        }else{
            // console.log("有下一页数据");
            this.QueryParams.pagenum++;
            this.getGoodsList();
        }
    },

    // 下拉刷新界面
    onPullDownRefresh(){
        // console.log("页面刷新");
        // 重置数组
        this.setData({
            goodsList:[]
        })
        // 重置页码
        this.QueryParams.pagenum=1
        // 发送请求
        this.getGoodsList()
        // 关闭刷新

    }

})